//go:build ignore

package main

import "fmt"

// 泛型demo,查找x在s中的下标,如未找到,返回-1
func Index[T comparable](s []T, x T) int {

	for i, v := range s {
		// 因为T类型有comparable限定,因此可以直接使用==比较
		if v == x {
			return i
		}
	}
	return -1
}

// List 代表一个可以保存任意类型的单链表
type List[T any] struct {
	next *List[T]
	val  T
}

func main() {
	s := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
	index := Index(s, 5)
	fmt.Println(index)
	ss := []string{"hello", "world", "good", "boy", "20240611"}
	sindex := Index(ss, "boy")
	fmt.Println(sindex)
}
